+
+ public override void Collide(Actor other, Rectangle collision)
+ {
+ if (other.GetType().IsAssignableFrom(typeof(StandardShip)) &&
+ !Immortal)
+ {
+ Die();
+ }
+ }
+
+ protected override void Die()
+ {
+ game.Player.Lives = game.Player.Lives - 1;
+ game.Player.ResetMultiplier();
+ if (game.Player.Lives < 0)
+ {
+ Dying = true;
+ game.GameOver();
+ }
+ else {
+ Hit.Play();
+ Immortal = true;
+ CurrentImmortalTime = 0;
+ }
+ }
+
+ public override void CleanUp()
+ {
+ base.CleanUp();
+ particleEngine = null;
+ InputController.Unbind("moveX", HandleHorizontalMovement);
+ InputController.Unbind("moveY", HandleVerticalMovement);
+ InputController.Unbind("changePolarity", HandleChangePolarity);
+ InputController.Unbind("shoot", HandleShot);
+ }